home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / netinet / RCS / if_ether.h,v < prev    next >
Text File  |  1990-11-29  |  4KB  |  179 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.5
  10. date     90.11.29.19.38.56;  author kupfer;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     89.11.28.11.51.48;  author ouster;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     88.07.13.11.50.27;  author ouster;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     88.06.29.15.10.53;  author ouster;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     88.06.21.11.59.23;  author ouster;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.5
  40. log
  41. @Include <net/if_arp.h>.
  42. @
  43. text
  44. @/*
  45.  * Copyright (c) 1982, 1986 Regents of the University of California.
  46.  * All rights reserved.
  47.  *
  48.  * Redistribution and use in source and binary forms are permitted
  49.  * provided that this notice is preserved and that due credit is given
  50.  * to the University of California at Berkeley. The name of the University
  51.  * may not be used to endorse or promote products derived from this
  52.  * software without specific prior written permission. This software
  53.  * is provided ``as is'' without express or implied warranty.
  54.  *
  55.  *    @@(#)if_ether.h    7.2 (Berkeley) 12/7/87
  56.  * $Header$
  57.  */
  58.  
  59. #ifndef _IF_ETHER
  60. #define _IF_ETHER
  61.  
  62. #include <net/if_arp.h>
  63.  
  64. /*
  65.  * Structure of a 10Mb/s Ethernet header.
  66.  */
  67. struct    ether_header {
  68.     u_char    ether_dhost[6];
  69.     u_char    ether_shost[6];
  70.     u_short    ether_type;
  71. };
  72.  
  73. #define    ETHERTYPE_PUP    0x0200        /* PUP protocol */
  74. #define    ETHERTYPE_IP    0x0800        /* IP protocol */
  75. #define ETHERTYPE_ARP    0x0806        /* Addr. resolution protocol */
  76. #define ETHERTYPE_RARP    0x8035        /* Reverse addr. resol. protocol */
  77.  
  78. /*
  79.  * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have
  80.  * (type-ETHERTYPE_TRAIL)*512 bytes of data followed
  81.  * by an ETHER type (as given above) and then the (variable-length) header.
  82.  */
  83. #define    ETHERTYPE_TRAIL        0x1000        /* Trailer packet */
  84. #define    ETHERTYPE_NTRAILER    16
  85.  
  86. #define    ETHERMTU    1500
  87. #define    ETHERMIN    (60-14)
  88.  
  89. /*
  90.  * Ethernet Address Resolution Protocol.
  91.  *
  92.  * See RFC 826 for protocol description.  Structure below is adapted
  93.  * to resolving internet addresses.  Field names used correspond to 
  94.  * RFC 826.
  95.  */
  96. struct    ether_arp {
  97.     struct    arphdr ea_hdr;    /* fixed-size header */
  98.     u_char    arp_sha[6];    /* sender hardware address */
  99.     u_char    arp_spa[4];    /* sender protocol address */
  100.     u_char    arp_tha[6];    /* target hardware address */
  101.     u_char    arp_tpa[4];    /* target protocol address */
  102. };
  103. #define    arp_hrd    ea_hdr.ar_hrd
  104. #define    arp_pro    ea_hdr.ar_pro
  105. #define    arp_hln    ea_hdr.ar_hln
  106. #define    arp_pln    ea_hdr.ar_pln
  107. #define    arp_op    ea_hdr.ar_op
  108.  
  109. #endif _IF_ETHER
  110. @
  111.  
  112.  
  113. 1.4
  114. log
  115. @Added RARP definition.
  116. @
  117. text
  118. @d13 1
  119. d18 2
  120. @
  121.  
  122.  
  123. 1.3
  124. log
  125. @Delete stuff that's only needed by the UNIX kernel, and that
  126. makes it hard to compile with the file.
  127. @
  128. text
  129. @d30 1
  130. @
  131.  
  132.  
  133. 1.2
  134. log
  135. @Add ifdefs to keep files from being processed twice.
  136. @
  137. text
  138. @a61 29
  139.  
  140. /*
  141.  * Structure shared between the ethernet driver modules and
  142.  * the address resolution code.  For example, each ec_softc or il_softc
  143.  * begins with this structure.
  144.  */
  145. struct    arpcom {
  146.     struct     ifnet ac_if;        /* network-visible interface */
  147.     u_char    ac_enaddr[6];        /* ethernet hardware address */
  148.     struct in_addr ac_ipaddr;    /* copy of ip address- XXX */
  149. };
  150.  
  151. /*
  152.  * Internet to ethernet address resolution table.
  153.  */
  154. struct    arptab {
  155.     struct    in_addr at_iaddr;    /* internet address */
  156.     u_char    at_enaddr[6];        /* ethernet address */
  157.     u_char    at_timer;        /* minutes since last reference */
  158.     u_char    at_flags;        /* flags */
  159.     struct    mbuf *at_hold;        /* last packet until resolved/timeout */
  160. };
  161.  
  162. #ifdef    KERNEL
  163. u_char etherbroadcastaddr[6];
  164. struct    arptab *arptnew();
  165. char *ether_sprintf();
  166. #endif
  167.  
  168. @
  169.  
  170.  
  171. 1.1
  172. log
  173. @Initial revision
  174. @
  175. text
  176. @d15 3
  177. d90 2
  178. @
  179.